#ifndef _xNodeType_WOP_H_
#define	_xNodeType_WOP_H_

#include "xNodeType.h"
#include "WOP_Entry.h"

/**
	hyt - 09/09/28 因應WOP_Int_Proxy而修改
**/


class xNodeType_WOP : public xNodeType {
	WOP_Entry *	_wop ;
	static string valid_pair[][2];
public:
	xNodeType_WOP(WOP_Entry *wop) { 
		_wop = wop ; 
		_name = "wop" ; 
	}

	virtual	void		setupPorts() ;
	virtual	string		getType() { return "wop" ; }
	inline  WOP_Entry * getWOP() { return _wop ; }
	virtual xParameter  toXParameter(string toType, xOutMappingPort * linked_op) ;
	virtual void		createMappedObject() { } 
	virtual string		toMDString(MDSType) ;
	virtual int     parseMDString(vector<string>& tokens, int start_index);
	virtual bool		update() { return true ;}  // basically when a WOP mapping node is updated, it does nothing
	virtual bool verify_rhs_link(xOutMappingPort *left, xInMappingPort *right, xNodeType* rightnode);
	virtual bool verify_lhs_link(xOutMappingPort *left, xNodeType* leftnode, xInMappingPort *right);
};

#endif 